home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
C and C++
/
Libraries
/
File class library
/
sources
/
CIsleResFile.c
< prev
next >
Wrap
Text File
|
1992-09-14
|
2KB
|
130 lines
/*
CIsleResFile.c
Superclass: CIsleFile
CResFile (Copyright © 1989 Symantec Corporation. All rights reserved.)
transplanted into CIsleFile
April 2, 1992 isl
*/
#include <CIsleResFile.h>
/*=====================*/
/*===---------------===*/
void CIsleResFile::IResFile()
Begin
CIsleFile::IIsleFile();
refNum= kNone;
End
/*===---------------===*/
void CIsleResFile::Open(SignedByte permission)
Begin
Boolean wasLocked;
ASSERT( IsOpen() == False);
wasLocked= Lock(True);
refNum= HOpenResFile(volNum, dirID, name, permission);
Lock(wasLocked);
if (refNum == kFailed)
{
refNum= kNone;
FailResError();
}
End
/*===---------------===*/
void CIsleResFile::Close()
Begin
if (refNum > kNone)
{
CloseResFile(refNum);
refNum= kNone;
FailOSErr( FlushVol(Null, volNum) );
}
End
/*===---------------===*/
void CIsleResFile::MakeCurrent()
Begin
ASSERT( IsOpen());
UseResFile(refNum);
End
/*===---------------===*/
Boolean CIsleResFile::IsOpen(void)
Begin
return refNum != kNone;
End
/*===---------------===*/
Boolean CIsleResFile::HasResFork(void)
Begin
HFileParam pBlock;
pBlock.ioNamePtr= name;
pBlock.ioVRefNum= volNum;
pBlock.ioFDirIndex= kNone;
pBlock.ioDirID= dirID;
FailOSErr( PBHGetFInfo( (HParmBlkPtr) &pBlock, False));
return pBlock.ioFlRLgLen != kNone;
End
/*===---------------===*/
void CIsleResFile::CreateNew(OSType creator, OSType type)
Begin
Boolean wasLocked;
if (!inherited::ExistsOnDisk())
inherited::CreateNew(creator, type);
wasLocked= Lock(True);
HCreateResFile(volNum, dirID, name);
Lock(wasLocked);
FailResError();
End
/*===---------------===*/
Boolean CIsleResFile::ExistsOnDisk(void)
Begin
if (inherited::ExistsOnDisk())
return HasResFork();
else
return False;
End
/*===---------------===*/
void CIsleResFile::Update( void)
Begin
ASSERT(IsOpen());
UpdateResFile(refNum);
FailResError();
FailOSErr( FlushVol( Null, volNum) );
End
/*===---------------===*/
/*=====================*/